- Print
- DarkLight
Retrieves the markdown or HTML body content of a category. For private or mixed-visibility projects, SAS tokens are appended to media URLs in the content by default. When contentMode is set to display, Snippets, Variables, and Glossaries are resolved inline. Set published to true to fetch only the latest published version; otherwise the latest version including drafts is returned.
All V3 endpoints require a Bearer token. Generate tokens in the Document360 portal under Settings > API Tokens. Tokens are project-scoped, require the customerApi scope, and do not expire by default. Tokens can be revoked at any time from the portal. Include the token in every request: Authorization: Bearer <your-token>. Alternatively, use the Authorize button below to sign in via OAuth2 Authorization Code flow with PKCE.
The unique identifier of the project. Retrieve project IDs from GET /v3/projects.
The unique identifier of the category. Retrieve category IDs from GET /v3/projects/{project_id}/categories.
ISO 639-1 language code (e.g., en, fr). Defaults to the project's primary language if omitted.
Controls content processing. Use raw (default) for unprocessed content with SAS tokens appended for private/mixed projects. Use display for fully rendered content with Snippets, Variables, and Glossaries resolved, SAS tokens appended, and internal notes removed. Warning: do not use display content for updates — Snippets, Variables, and Glossaries are resolved into inline HTML and the reusable component references will be lost.
When true, returns the latest published version. When false (default), returns the latest version including drafts.
Category content retrieved successfully.
Returns the content and versioning details for the specified category.
{
"data": {
"id": "9a3b4c5d-6e7f-8a9b-0c1d-2e3f4a5b6c7d",
"title": "Getting Started",
"content": "# Getting Started\nWelcome to our product! This guide will help you set up your account and begin using the platform.",
"html_content": "Getting Started
\nWelcome to our product! This guide will help you set up your account and begin using the platform.
",
"parent_category_id": null,
"project_version_id": "1c2d3e4f-5a6b-7c8d-9e0f-a1b2c3d4e5f6",
"version_number": 2,
"public_version": 2,
"latest_version": 2,
"enable_rtl": false,
"hidden": false,
"status": 3,
"created_by": "a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d",
"created_at": "2025-03-01T09:00:00Z",
"modified_at": "2025-07-15T14:30:00Z",
"modified_by": "a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d",
"slug": "getting-started",
"is_fallback_content": false,
"content_type": 0,
"current_workflow_status_id": "b7e2a1d4-3f56-4c89-9d0e-1a2b3c4d5e6f"
},
"success": true,
"request_id": "req_abc123def456",
"errors": null,
"warnings": null
}Generic API response wrapper containing typed data.
Response data payload.
Unique identifier of the category.
Title of the category.
Markdown content of the category.
HTML-rendered content of the category.
Identifier of the parent category, if any. Retrieve category IDs from GET /v3/projects/{projectId}/categories.
Project version this category belongs to. Corresponds to a version from GET /v3/projects/{projectId}/project-versions.
Current version number of the content.
Published version number.
Latest available version number.
Whether right-to-left text direction is enabled.
Whether the category is hidden from readers.
Publication status of the category. Possible values: 0 = Draft, 3 = Published.
User ID of the creator. Corresponds to a user from GET /v3/projects/{projectId}/users.
Date and time the category was created.
Date and time the category was last modified.
User ID of who last modified this category. Corresponds to a user from GET /v3/projects/{projectId}/users.
URL-friendly slug for the category.
Whether the content is a fallback from the default language.
Content format type. Possible values: 0 = Markdown, 1 = Wysiwyg (rich text), 2 = Block.
Current workflow status identifier, if workflows are enabled. Retrieve available statuses from GET /v3/projects/{projectId}/workflow-statuses.
Whether the API request was successful.
Unique identifier for request tracing and correlation.
List of errors if the request failed.
Represents an error returned by the API.
Machine-readable error code (e.g. VALIDATION_ERROR, RESOURCE_NOT_FOUND).
Human-readable error message.
The request field that caused the error, if applicable.
Additional context about the error.
List of non-fatal warnings from the request.
Represents a non-fatal warning from the API.
Machine-readable warning code.
Human-readable warning message.
Authentication token is missing or invalid.
Authentication token is missing or invalid.
{
"type": "https://developer.document360.com/errors/unauthorized",
"title": "Unauthorized.",
"status": 401,
"detail": "The authentication token is missing or has expired.",
"instance": null,
"trace_id": "req_abc123def456",
"errors": [
{
"code": "UNAUTHORIZED",
"message": "Bearer token is missing or invalid.",
"field": null,
"details": null
}
],
"warnings": null
}RFC 7807 Problem Details response for V3 API errors. Content-Type: application/problem+json
URI reference identifying the error type (links to documentation).
Short human-readable summary of the error type.
HTTP status code.
Human-readable explanation specific to this occurrence.
URI of the request that generated the error.
Request trace identifier for correlation.
Structured list of specific errors (extension field).
Represents an error returned by the API.
Machine-readable error code (e.g. VALIDATION_ERROR, RESOURCE_NOT_FOUND).
Human-readable error message.
The request field that caused the error, if applicable.
Additional context about the error.
Non-fatal warnings (extension field).
Represents a non-fatal warning from the API.
Machine-readable warning code.
Human-readable warning message.
Category not found.
The requested resource was not found.
{
"type": "https://developer.document360.com/errors/not-found",
"title": "Not Found.",
"status": 404,
"detail": "The requested resource does not exist or has been deleted.",
"instance": null,
"trace_id": "req_abc123def456",
"errors": [
{
"code": "RESOURCE_NOT_FOUND",
"message": "The requested resource was not found.",
"field": null,
"details": null
}
],
"warnings": null
}RFC 7807 Problem Details response for V3 API errors. Content-Type: application/problem+json
URI reference identifying the error type (links to documentation).
Short human-readable summary of the error type.
HTTP status code.
Human-readable explanation specific to this occurrence.
URI of the request that generated the error.
Request trace identifier for correlation.
Structured list of specific errors (extension field).
Represents an error returned by the API.
Machine-readable error code (e.g. VALIDATION_ERROR, RESOURCE_NOT_FOUND).
Human-readable error message.
The request field that caused the error, if applicable.
Additional context about the error.
Non-fatal warnings (extension field).
Represents a non-fatal warning from the API.
Machine-readable warning code.
Human-readable warning message.
Rate limit exceeded. Retry after the duration specified in the Retry-After header.
Rate limit exceeded.
{
"type": "https://developer.document360.com/errors/too-many-requests",
"title": "Too Many Requests.",
"status": 429,
"detail": "Rate limit exceeded. Retry after the duration specified in the Retry-After header.",
"instance": null,
"trace_id": "req_abc123def456",
"errors": [
{
"code": "TOO_MANY_REQUESTS",
"message": "Rate limit exceeded. Retry after the duration specified in the Retry-After header.",
"field": null,
"details": null
}
],
"warnings": null
}RFC 7807 Problem Details response for V3 API errors. Content-Type: application/problem+json
URI reference identifying the error type (links to documentation).
Short human-readable summary of the error type.
HTTP status code.
Human-readable explanation specific to this occurrence.
URI of the request that generated the error.
Request trace identifier for correlation.
Structured list of specific errors (extension field).
Represents an error returned by the API.
Machine-readable error code (e.g. VALIDATION_ERROR, RESOURCE_NOT_FOUND).
Human-readable error message.
The request field that caused the error, if applicable.
Additional context about the error.
Non-fatal warnings (extension field).
Represents a non-fatal warning from the API.
Machine-readable warning code.
Human-readable warning message.
An unexpected server error occurred.
Unexpected server error.
{
"type": "https://developer.document360.com/errors/internal-error",
"title": "Internal Server Error.",
"status": 500,
"detail": "An unexpected error occurred. Please try again or contact support.",
"instance": null,
"trace_id": "req_abc123def456",
"errors": [
{
"code": "INTERNAL_SERVER_ERROR",
"message": "An unexpected error occurred.",
"field": null,
"details": null
}
],
"warnings": null
}RFC 7807 Problem Details response for V3 API errors. Content-Type: application/problem+json
URI reference identifying the error type (links to documentation).
Short human-readable summary of the error type.
HTTP status code.
Human-readable explanation specific to this occurrence.
URI of the request that generated the error.
Request trace identifier for correlation.
Structured list of specific errors (extension field).
Represents an error returned by the API.
Machine-readable error code (e.g. VALIDATION_ERROR, RESOURCE_NOT_FOUND).
Human-readable error message.
The request field that caused the error, if applicable.
Additional context about the error.
Non-fatal warnings (extension field).
Represents a non-fatal warning from the API.
Machine-readable warning code.
Human-readable warning message.
